//Copyright 2011 - Jonathan Allen

using System;
using System.Collections.Generic;
using System.Linq;

namespace Granite.ComponentModel
{
	///// <summary>
	///// 
	///// </summary>
	//public class SetChangedEventArgs : EventArgs
	//{
	//	readonly NotifySetChangedAction m_Action;
	//	readonly object m_NewValue;
	//	readonly object m_OldValue;


	//	/// <summary>
	//	/// Used when adding or removing items from the set
	//	/// </summary>
	//	/// <param name="action"></param>
	//	/// <param name="value"></param>
	//	public SetChangedEventArgs(NotifySetChangedAction action, object value)
	//	{
	//		m_Action = action;
	//		switch (m_Action)
	//		{
	//			case NotifySetChangedAction.Add:
	//				m_NewValue = value;
	//				break;
	//			case NotifySetChangedAction.Remove:
	//				m_OldValue = value;
	//				break;
	//			default:
	//				throw ExceptionUtilities.CreateArgumentOutOfRangeException("action", action, "Expected Add or Remove");
	//		}
	//	}

	//	/// <summary>
	//	/// Used when resetting the Set
	//	/// </summary>
	//	/// <param name="action"></param>
	//	public SetChangedEventArgs(NotifySetChangedAction action)
	//	{
	//		m_Action = action;
	//		switch (m_Action)
	//		{
	//			case NotifySetChangedAction.Reset:
	//				break;
	//			default:
	//				throw ExceptionUtilities.CreateArgumentOutOfRangeException("action", action, "Expected Reset");
	//		}
	//	}

	//	/// <summary>
	//	/// The action that was performed.
	//	/// </summary>
	//	public NotifySetChangedAction Action
	//	{
	//		get { return m_Action; }
	//	}

	//	/// <summary>
	//	/// The newly added item.
	//	/// </summary>
	//	public object NewValue
	//	{
	//		get { return m_NewValue; }
	//	}

	//	/// <summary>
	//	/// The removed or replaced item.
	//	/// </summary>
	//	public object OldValue
	//	{
	//		get { return m_OldValue; }
	//	}


	//}
}
